//选项式
// import { ref } from 'vue';
// import { defineStore } from 'pinia';

// export const useTokenStore = defineStore('token', {
//   state: () => ({
//     token: ref(null), // 存储 token
//     userId: ref(null), // 存储用户 ID
//     userName: ref(null), // 存储用户名
//   }),
//   actions: {
//     // 设置 token 和用户信息
//     setToken(token, userId, userName) {
//       this.token = token;
//       this.userId = userId;
//       this.userName = userName;
//     },
//     // 清空 token 和用户信息
//     clearToken() {
//       this.token = null;
//       this.userId = null;
//       this.userName = null;
//     }
//   },
//   getters: {
//     isLoggedIn: (state) => !!state.token, // 判断用户是否登录
//   },
// });
//组合式
// src/stores/token.js
import { ref } from 'vue';
import { defineStore } from 'pinia';

export const useTokenStore = defineStore('x-token', () => {
  const token = ref(localStorage.getItem('token') || null);
  const userId = ref(localStorage.getItem('userId') || null);
  const username = ref(localStorage.getItem('username') || null);
  const imageUrl = ref(localStorage.getItem('imageUrl') || null);

  // 设置 token 和用户信息
  const setToken = (newToken, newUserId, newUserName, newImageUrl) => {
    token.value = newToken;
    userId.value = newUserId;
    username.value = newUserName;
    imageUrl.value = newImageUrl;

    // 存储到 localStorage
    localStorage.setItem('token', newToken);
    localStorage.setItem('userId', newUserId);
    localStorage.setItem('username', newUserName);
    localStorage.setItem('imageUrl', newImageUrl);
  };

  // 清空 token 和用户信息
  const clearToken = () => {
    token.value = null;
    userId.value = null;
    username.value = null;
    imageUrl.value = null;

    // 清空 localStorage
    localStorage.removeItem('token');
    localStorage.removeItem('userId');
    localStorage.removeItem('username');
    localStorage.removeItem('imageUrl');
  };

  // 判断用户是否登录
  const isLoggedIn = () => !!token.value;

  return {
    token,
    userId,
    username,
    imageUrl,
    setToken,
    clearToken,
    isLoggedIn,
  };
});
//使用
// src/main.js
// src/stores/token.js
// import { ref } from 'vue';
// import { defineStore } from 'pinia';

// export const useTokenStore = defineStore('token', () => {
//   const token = ref(null); // 存储 token

//   // 设置 token
//   const setToken = (newToken) => {
//     token.value = newToken;
//   };

//   // 清空 token
//   const clearToken = () => {
//     token.value = null;
//   };

//   // 判断用户是否登录
//   const isLoggedIn = () => !!token.value;

//   return {
//     token,
//     setToken,
//     clearToken,
//     isLoggedIn,
//   };
// });